遠程程序呼叫(Remote Procedure Call,RPC):
被設計成一種使用在以網路連接之系統間的程序呼叫方法。相較於 IPC 訊息,RPC 通信所交換的訊息有良好的架構,因此不再只是封包形式的資料。這些訊息被送往一個 RPC 守護程式(此 RPC 守護程式正在傾聽遠方系統的一個 port),訊息中包含被執行函數的識別符號和傳遞給該函數的參數。然後,這個函數會根據要求被執行,而任何輸出會以另一個獨立訊息送回給要求者。
RPC 的執行如下
請 AI 幫我生成一個使用 XML-RPC 在不同行程間通信的例子
server.py
from xmlrpc.server import SimpleXMLRPCServer
import multiprocessing
def add(x, y):
    return x + y
def run_server():
    server = SimpleXMLRPCServer(("localhost", 8000))
    server.register_function(add, "add")
    print("RPC 服務器正在運行...")
    server.serve_forever()
if __name__ == "__main__":
    # 使用多進程來啟動服務器
    server_process = multiprocessing.Process(target=run_server)
    server_process.start()
client.py
import xmlrpc.client
def run_client():
    with xmlrpc.client.ServerProxy("http://localhost:8000/") as proxy:
        result = proxy.add(5, 4)
        print(f"5 + 4 = {result}")
if __name__ == "__main__":
    run_client()
結果
